#include<bits/stdc++.h>
using namespace std;
int n,m,S,C,sum;
string s[1000006],t[1000006];
signed main(){
	freopen("indian.in","r",stdin);
	freopen("indian.out","w",stdout);
	ios::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);
	cin>>n>>m;
	for(int i=1;i<=n;i++) cin>>s[i],s[i]=" "+s[i];
	for(int i=1;i<=n;i++){
		t[i]=" ";
		for(int j=1;j<=m;j++){
			t[i]+='0';
			if(s[i][j]=='.') {t[i][j]='1';continue;}
			S++; 
			if(i==1 || s[i-1][j]=='.') C++;
			if(i==n || s[i+1][j]=='.') C++;
			if(j==1 || s[i][j-1]=='.') C++;
			if(j==m || s[i][j+1]=='.') C++;
		}
	}
	sum=(S+C)/5;
	for(int i=4;i<=n;i+=4){
		for(int j=1;j<=m;j++){
			if(j%2==1){
				if(s[i-3][j]=='.') continue;
				s[i-3][j]='1'; sum--;
				t[i-3][j]='1';
				t[i-3+1][j]='1';
				if(j!=m) t[i-3][j+1]='1';
				if(i-3!=1) t[i-3-1][j]='1';
				if(j!=1) t[i-3][j-1]='1';
			}
			else {
				if(s[i-1][j]=='.') continue;
				s[i-1][j]='1'; sum--;
				t[i-1][j]='1';
				t[i-1+1][j]='1';
				t[i-1-1][j]='1';
				if(j!=m) t[i-1][j+1]='1';
				if(j!=1) t[i-1][j-1]='1';
			}
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			if(t[i][j]=='1') continue;
			s[i][j]='1'; sum--;
			t[i][j]='1';
			if(i!=n) t[i+1][j]='1';
			if(j!=m) t[i][j+1]='1';
			if(i!=1) t[i-1][j]='1';
			if(j!=1) t[i][j-1]='1';
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			if(s[i][j]=='.') cout<<".";
			else if(s[i][j]=='#') cout<<"0";
			else cout<<"1";
		}
		cout<<'\n';
	}
	return 0;
}
/*
(x*y+2x+2y)/5 >= x*y/4
4xy+8x+8y>=5xy
8(x+y)>=xy
*/
